I/o device attachment for a computer

ABSTRACT

An attachment for attaching I/O devices to the central processing unit of a computer including a minimized amount of hardware and particularly including registers for holding data that is being transferred from the central processing unit to an I/O device or vice versa. The attachment preferably also includes interrupt control logic for obviating the necessity for continuous polling of the I/O devices. Other necessary control functions for servicing the I/O devices, such as for translating the customer&#39;&#39;s program I/O commands, initializing interrupt levels, keeping track of the progress of processing by the I/O devices and sensing when an I/O operation is completed are performed by an interpretive mode program contained in a dedicated portion of the memory of the central processing unit.

United States Patent [19] Brooks et a1.

[ 1/0 DEVICE ATTACHMENT FOR A COMPUTER [75] Inventors: Everett G. Brooks; Nyles N. Heise;

David O. Lewis; Glenn D. Pooler, all of Rochester, Minn.; Dean 0. Zimmerman, Dunwoody, Ga.

[73] Assignee: International Business Machines Corporation, Armonk, NY.

[22] Filed: Apr. 11, 1972 [21] Appl. No.: 242,962

3,585,601 6/1971 Lahrson 3,029,414 4/1962 Schrimpf 340/1725 3.210,733 10/1965 Terzian 1 340/1725 3,283,308 11/1966 Klein... 340/1725 3,293,612 12/1966 Ling 340/1725 3,369,221 2/1968 Lethin 340/1725 1 Apr. 16, 1974 Primary Examiner-Paul .1. Henon Assistant Examiner-Melvin B. Chapnick Attorney, Agent, or Firm-Keith T. Bleuer 5 7] ABSTRACT An attachment for attaching 1/0 devices to the central processing unit of a computer including a minimized amount of hardware and particularly including registers for holding data that is being transferred from the central processing unit to an 1/0 device or vice versa. The attachment preferably also includes interrupt control logic for obviating the necessity for continuous polling of the 1/0 devices. Other necessary control functions for servicing the 1/0 devices, such as for translating the customers program 1/O commands, initializing interrupt levels, keeping track of the progress of processing by the 1/0 devices and sensing when an 1/0 operation is completed are performed by an interpretive mode program contained in a dedicated portion of the memory of the central processing unit.

10 Claims, 29 Drawing Figures l i FY11 H Aul v PATENIEI] APR I 6 I974 SHEU 01 BF 21 PATENTED APR \6 I974 SBEET 02 0F 21 Tfi mo 104 102 FIG. 2B

, nude 7% PATENTEDAPR T 6 i974 3.805.245

' sum as or 21 LDAD PUNCH DATA T 250a A U 230a DDD BIT 0, 54a

440a PUNCH WHEEL EMLTTER, T48

DBO BIT 5, 54f

LOAD PUNCH DATA 2, 250b A U 2309 2301 A LT 44\2m LDAD PUNCH DATA 3 250c 230m A LT 230r A LT FIG. 4

PATENTEOAPA 16 I974 3.805.245

SHEET 05 0F 21 ICPL I 392 3 SWITCH cs PROC RUN SWITCH PROC RUN/390 9s zB'I'B 375 GR ALTER STORAGE MODE CE ALTER STORAGE SWITCH v ICPL A M CPU START KEY 402 400 39a 398 CPU START SWITCH 406a a D81 BIT 0 4] 2a OR T0 DB1 BIT 0 N 4o8a DBI BIT 7 0R T0 DBI BIT 7 N A 4O8h 6, 25% OR 4/14h 254C I AT 4a 41 s CE SWITCHES FIG.5

PATENTEDAPR 1 191 3.805245 sum 07 or 21 LEADING EDGE DETECTOR READ EMITTER T04 INT ST 1 BIT 0 LOAD ALLOW INT 1 DBO BIT 0 54a EB OUTPUT TIME 226d DECODE 8, 286h PUNCH EMITTER T48 LEADING EDGE DETECTOR NT ST 1 BIT 7 240h 9B0 BIT 7 54h FIG. 6

PATENTEDAFR 161974 SHE 08 0F 21 IDAD INTER STATUS T 246a INTER M I BIT D 240a A LLIIIU INTER STATUS 2 246D INT IR ST 2 BIT 0 2401' A IDAD INTER sTATus 3 246C A INTER ST 3 BIT 0 240q LOAD INTER sTATus A 246d A INTER ST 4 BIT 0 240y 352a4 ICPL COUNT 1 254a OR IDAD READ I 248a I A READ REG 0 238a NI AD REG 5 2389 I ERI COUNTS 2541: T A

0R LUAD READ 2 2481: I

354516 358 READ REG I2, 238m I A C I PL COUNT 3 254C 0R LOAD READ 3 248C DBI BIT 0 PATENTEDAPR 15 1974 ENTER ST INTER ST INTER ST INTER ST READ REG READ REG READ REG LOAD PUN PUNCH CK LOAD PUN PUNCH CK LOAD PUN PUNCH CK BBC MU 05 if 2! T BIT 2 240C A A 2 BIT 2, 240k A a BIT 2 2405 A 4 BIT 2, 240a 246d 352c5 OR CK DATA 1 244a 3- A o 234a c| DATA 2 24 2b 352a cx DATA 3 244C 0 FIG. 7B O PATENTEBAPR l 6 ISM sum n ur 21 PUNCH EMT 1 1 48a PUNCH PUNCH c| ERTLS 0 236a A LT 0 EB OUTPUT TIME 226d 306a o HECODE 1 7 286q A o m PUNCH PUNCH CK CRTLS 5 2361 A LT PUNCH EMT 2 148b PUNCH PUNCH c1 ERTLS 6 2369 A T PUNCH PUNCH CK CRTLS 1 1 A LT UNCH EMT 3. 148a A H PUNCH PUNCH c| cans 12, 236m PUNCH 21mm c1 CRTLS 1 7 2361" A U FIG.8

REG

REG

REG

REG

REG

REG

PATENTEDAPR 1 5 11114 SIEEI 12 If 21 READ CT 1 260 JEAD A LT READ CELL 0 1 18a 0 EB OUTPUT TIME 226d 300 A a O DEc0DE 14 286 o 304 READ A LT READ CELL 5 118s READ c1 2, 258

A LT READ CELL 6 1 18g 0 L... READ READ CELL 1 1 A LT READ CT 3 256 g--- A LT A READ CELL 12 1 18m O k 300m 0 READ READ CELL 17, 1 18r A LT FIG. 9

REG

REG

REG

REG

REG

REG

PATENTEDAPR l 5 1974 SI!" 13 llf 21 1:6 OUTPUT TIME 226d LOAD 252.11 DECODE 1 A o 200 a J 28Gb LOAD i a CODE LT EnabT e W 0- A 252d 0 TIME 226b A DECODE 4 286d ggg oF INSTR zsgd Tr LOAD A 250a 282 DECODE 5 o DECODE 2868 288 e 1 OF 25s 28 LOAD A 250c uacous 7 286g mac 8 I LOAD D80 1 54b 286h A 0246a T 2861 \o 28 288h 2861 D80 2, 54c LOAD 286k A 246d UBO Q BUS UB0 3 54d 54 ozcoos 1 2 LOAD A 248a 0- 4, 548 W DECODE T4 L LOAD 286n A 248C DBO 5 541 H DECODE 1 s LOAD DBO s 54g 2860 24% A o 286p 288o D80 7 64h JL DEC 1 7 LOAD A 244C D- [9 INPUT TIME 2261:

FIG. 1 0

ALLOW INTER 1 ALLOH INTER 4 PUNCH DATA 1 PUNCH DATA 3 INTER STAT l INTER STAT 4 READ DATA 1 READ DATA 3 FUN CHK DATA 1 FUN CHK DATA 3 PATENTEDAPR 15 I974 33. 805; 245

SHEEI 1' U 21 ROUTINE STARTING GENERATE PART s02 SAVE LSR S ADDREss 15 0F ROUTINE ARR, etc) DETERMINED STARTING ADDRESS I BY 0P coDE AND CHOSEN DEVICE IN 522 LOAD THE 4 USTOMER 504 INTERRUPT LEVEL 5 Q 'QE IAR S INSTRUCTION THE DEVICE CHOSEN SAVE MR 506 (ADR OF CUSTOMER 524 1 0 INsTRDcTIDN) 15 THE PUNCH THE DEVICE CHOSEN CAUSE MACHINE CHECK DP cDDE APL Y CODE SID GENERATE REMAINDER 528 OF ROUTINE STARTING ADDRESS ND 512 OD BRANCH To ROUTINE STARTING ADDREss mm TIO I ND L 514 DP so DE sNs THERE ARE 8 .1

ROUTINES: READER s10 SNS LIO APL/TIO I F OP com is PUNCH NDT APL S10 515 L 1 D T I0 OR sm 0 APL/TIO IT N1 LL BE LID FIG. HA

PATENTEDAPRTsHH 3.805245 sum 15 0F 21 DETERMINE BRANCHTO ADDRESS FROM CUSTOMER INSTRUC THE CONDITION IS SPE BY THE THE R EXECUT OR APL H-TO THE CONDITION IS SPECIFIED BY THE 0 CODE OF THE CUSTOMER EXECUTED TIO 0R APL SUPPLY 2 BYTES 0F ggg iggg f' INFORMATION TO THE DETERMINED BY CUSTOMER PROGRAM THE Q CODE OF THE CUSTOMER EXECUTION SNS THIS 1s STATUS, T TZA ADDRESSES \562a PATENTED R 15 I974 3.805.245

SHEET 15 0F 21 SUPPLY 2 BYTES OF OBTAIN YTES OF THE INTERPRETATION zn asmsmom To BE To THE 2 BYTES CUSTOMER PROGRAM DETERMINED THE Q CODE OF 574 THE T R 576 OBTAIN 2 BYTES 0 INFORMATION FROM CUSTOMER PROGRAM FIG. I?

C D U.

WILL BE A DATA ADDRESS ETC ENABLE LEVEL 4 START READER MOTOR WAIT FOR READER MOTOR TO REACH SPEED SET TATUS BIT I ING THE DER IS BUSY FIG. l8

PATENTEDAPR 16 I914 3.805245 mm 11 0f 21 SAVE LSR s \604 (PSR AAR etc) SET n O 606 INPUT INTERRUPT STATUS BYTE 608 (BITS O THRU 7) nth N0 BIT OF STATUS BYTE 1 YES PROCESS nth ROUTINE THIS ENTAILS OBTAINING THE nth STARTING ADDRESS 568 ASSOCIATED HTTH THE 8 RDUTINES IN THIS INTERRUPT LEVEL AND BRANCHING T0 THAT ROUTINE.

AFTER THAT SPECIFIC ROUTINE IS COMPLETE IT HILL RETURN TO BLOCK 6T 4 VIA RESTORE LSR s (PSR AAR etC) A BRANCH INSTRUCTION RELEASE INTERRUPT LEVEL PATENIEDAPR 16 mm 3.805; 245

SHEET 18 If 21 SET FEED CHECK BIT TURN OFF MOTOR 7 INPUT 3 BYTES 0F READ DATA sas DISABLE ALL READ INTERRUPTS 640 DISABLE THIS INTER SET READY BIT FIG. 20

PATENTED APR 1 6|9T4 sum 19 I 21 YES BUSY T0 $10 START PUNCH MOTOR 552 T FOR PUNCH 654 MOTOR TO REACH SPEED ET A STATUS an INDICATI NG THE 556 PUNCH 1s BUSY ENABLE LEVEL 2 PUNCH EMITTER ca 658 INTERRUPT FIG. 2|

DETE NE CUSTOMER RETURN TO 546 CUSTOMER PROGRA FIG. 23 

1. A calculating system comprising: a central processing unit, an input-output unit for receiving data from or providing data to said central processing unit and having a data carrying record traveling through the input-output unit, and an attachment connecting said input-output unit with said central processing unit, said central processing unit including an arithmetic and logic unit, a memory and a plurality of temporary storage registers connected with the memory and arithmetic and logic unit so that data in said memory may be processed by the central processing unit in accordance with programs contained in said memory, said input-output unit including an indicator device providing output signals indicative of changing positions of the data carrying record in the input-output unit, said memory including a part having fixed programs therein and said attachment being arranged to cause said fixed programs to be operative under the control of said signals from said indicator device so that the fixed programs cooperate with the rest of the central processing unit to count said signals to thus indicate the position of the data carrying record in said input-output unit.
 2. A calculating system as set forth in claim 1 and including another input-output unit for receiving data from or providing data to said central processing unit and having a data carrying record traveling through the unit, said fixed programs being such and cooperating with the rest of said central processing unit in such a manner as to translate an I/O command in another part of said memory and apply it to said fixed programs so as to thereby cause the attachment to distinguish between one of said input-output units and the other of said input-output units.
 3. A calculating system as set forth in claim 1, said fixed programs being such as to cooperate with the rest of the central processing unit to make a determination and provide an output signal when said counting has progressed to a pre-determined number of counts.
 4. A calculating system as set forth in claim 1, said fixed programs in said memory part being such as to cooperate with the rest of the central processing unit to make a determination and provide an output signal when the counting of said signals by said fixed programs cooperating with the rest of the central processing unit has progressed to a predetermined number of counts and being such as to cooperate with the rest of said central processsing unit so as to indicate the completion of the processing of a data carrying record by said input-output unit when said counting has progressed to said predetermined number of counts.
 5. A calculating system as set forth in claim 1, said attachment including means under the control of output signals from said indicator device to make an interrupt of the processing of data by said central processing unit on the reception of one of said output signals.
 6. A calculating system as set forth in claim 5, said input-output unit including a reader for reading data from a document card traveling through the reader and said attachment including means for transferring data from the reader to said central processing unit on the existence of said interrupt of the processing of data.
 7. A calculating system as set forth in claim 5, said input-output unit including a punching machine for punching a document card traveling through the punching machine, said attachment including means for transferring data from said central processing unit to said punching machine on the existence of said interrupt of the processing of data.
 8. A calculating system as set forth in claim 5, said input-output unit including a reader for reading a punched document card traveling through the reader and said attachment including means for transferring data from the reader to said central processing unit on the existence of said interrupt of the processing of data and including a read register for temporarily storing the data read by said reader from a punched document card prior to passage of the information to said central processing unit.
 9. A calculating system as set forth in claim 5, said input-output unit including a punching machine for punching data indicating openings in a document card traveling through the machine, and said attachment including means for transferring data from said central processing unit to said punching machine on the existence of said interrupt of the processing of data and including a punch register for temporarily storing data from said central processing unit to be punched by said punching machine into a document card.
 10. A calculating system as set forth in claim 5, said input-output unit including a second indicator device providing an output signal when said data carrying record has reached a certain point in traveling through the input-output unit and the attachment including means under control of said last named output signal to thereafter transfer data between said input-output unit and said central processing unit on the existence of said interrupt of the processing of data. 